algorithm characteristics